home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 2 / CU Amiga Magazine's Super CD-ROM 02 (1996)(EMAP Images)(GB)[!][issue 1996-04].iso / magazine / amiga_e / debug.asm < prev    next >
Assembly Source File  |  1994-08-15  |  2KB  |  148 lines

  1.     XDEF    kcmpstr_ii
  2.     XDEF    kgetchar
  3.     XDEF    kgetnum
  4.     XDEF    kmaygetchar
  5.     XDEF    kputfmt_ii
  6.     XDEF    kputchar_i
  7.     XDEF    kputstr_i
  8.  
  9.  
  10. ABSEXECBASE    EQU    $4
  11.  
  12.  
  13. kputchar_i:
  14.     MOVE.L    4(A7),D0
  15. LAB_0001:
  16.     MOVE.L    A6,-(A7)
  17.     MOVEA.L    ABSEXECBASE,A6
  18.     JSR        -516(A6)
  19.     MOVEA.L    (A7)+,A6
  20.     RTS
  21.  
  22.  
  23. kputstr_i:
  24.     MOVEA.L    4(A7),A0
  25. LAB_0003:
  26.     MOVE.B    (A0)+,D0
  27.     BEQ.S    LAB_0004
  28.     BSR.S    LAB_0001
  29.     BRA.S    LAB_0003
  30. LAB_0004:
  31.     RTS
  32.  
  33.  
  34. kgetchar:
  35.     BSR.S    kmaygetchar
  36.     TST.L    D0
  37.     BMI.S    kgetchar
  38.     RTS
  39.  
  40.  
  41. kmaygetchar:
  42.     MOVE.L    A6,-(A7)
  43.     MOVEA.L    ABSEXECBASE,A6
  44.     JSR        -510(A6)
  45.     MOVEA.L    (A7)+,A6
  46.     RTS
  47.  
  48.  
  49. kputfmt_ii:
  50.     MOVEA.L    8(A7),A0
  51.     MOVEA.L    4(A7),A1
  52.     MOVEM.L    A2,-(A7)
  53.     LEA.L    LAB_0001(PC),A2
  54.     BSR.S    LAB_0009
  55.     MOVEM.L    (A7)+,A2
  56.     RTS
  57. LAB_0009:
  58.     MOVE.L    A6,-(A7)
  59.     MOVEA.L    ABSEXECBASE,A6
  60.     JSR    -522(A6)
  61.     MOVEA.L    (A7)+,A6
  62.     RTS
  63.  
  64.  
  65. kcmpstr_ii:
  66.     MOVEM.L    4(A7),A0-A1
  67.     MOVEQ    #-1,D0
  68. LAB_000B:
  69.     MOVE.B    (A0)+,D1
  70.     BEQ.S    LAB_000C
  71.     CMP.B    (A1)+,D1
  72.     DBNE    D0,LAB_000B
  73.     NEG.L    D0
  74.     BRA.S    LAB_000D
  75. LAB_000C:
  76.     CMP.B    (A1)+,D1
  77.     BNE.S    LAB_000D
  78.     MOVEQ    #0,D0
  79. LAB_000D:
  80.     RTS
  81.  
  82.  
  83. kgetnum:
  84.     MOVEM.L    D2-D4,-(A7)
  85. LAB_000F:
  86.     MOVEQ    #0,D2
  87.     MOVEQ    #0,D3
  88.     MOVEQ    #0,D4
  89.     JSR    kgetchar
  90.     CMPI.B    #$2D,D0
  91.     BNE.S    LAB_0011
  92.     JSR    LAB_0001
  93.     ADDQ    #1,D3
  94.     MOVEQ    #-1,D4
  95.     BRA.S    LAB_0011
  96. LAB_0010:
  97.     JSR    kgetchar
  98. LAB_0011:
  99.     CMPI.B    #$08,D0
  100.     BNE.S    LAB_0012
  101.     TST    D3
  102.     BEQ.S    LAB_000F
  103.     JSR    LAB_0001
  104.     MOVEQ    #32,D0
  105.     JSR    LAB_0001
  106.     MOVEQ    #8,D0
  107.     JSR    LAB_0001
  108.     SUBQ    #1,D3
  109.     BEQ.S    LAB_000F
  110.     SWAP    D2
  111.     MOVEQ    #0,D1
  112.     MOVE    D2,D1
  113.     DIVU    #$000A,D1
  114.     SWAP    D1
  115.     MOVE    D1,D2
  116.     SWAP    D2
  117.     DIVU    #$000A,D2
  118.     MOVE    D2,D1
  119.     MOVE.L    D1,D2
  120. LAB_0012:
  121.     CMPI.B    #$30,D0
  122.     BCS.S    LAB_0013
  123.     CMPI.B    #$39,D0
  124.     BHI.S    LAB_0013
  125.     MOVE.L    D2,D1
  126.     ASL.L    #2,D1
  127.     BVS.S    LAB_0010
  128.     ADD.L    D2,D1
  129.     BVS.S    LAB_0010
  130.     ASL.L    #1,D1
  131.     SUBI.B    #$30,D0
  132.     ADD.L    D0,D1
  133.     BCS.S    LAB_0010
  134.     ADDI.B    #$30,D0
  135.     MOVE.L    D1,D2
  136.     JSR    LAB_0001
  137.     ADDQ    #1,D3
  138. LAB_0013:
  139.     CMPI.B    #$0D,D0
  140.     BNE.S    LAB_0010
  141.     TST.B    D4
  142.     BEQ.S    LAB_0014
  143.     NEG.L    D2
  144. LAB_0014:
  145.     MOVE.L    D2,D0
  146.     MOVEM.L    (A7)+,D2-D4
  147.     RTS
  148.